package com.zheng.wc.rpc.service.impl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zheng.common.annotation.BaseService;
import com.zheng.common.base.BaseServiceImpl;
import com.zheng.oa.common.constant.enums.OaStatus;
import com.zheng.wc.dao.mapper.WcPersonalPlanMapper;
import com.zheng.wc.dao.model.WcPersonalPlan;
import com.zheng.wc.rpc.api.WcPersonalPlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author likun
 * @since 2018-04-09
 */
@Service
@Transactional(rollbackFor = Exception.class)
@BaseService
public class WcPersonalPlanServiceImpl extends BaseServiceImpl<WcPersonalPlanMapper, WcPersonalPlan> implements WcPersonalPlanService {
    @Autowired
    private WcPersonalPlanMapper planMapper;

    @Override
    public boolean deletePlans(String ids) throws Exception {
        String[] idArray = ids.split("-");
        for (String id : idArray) {
            WcPersonalPlan plan = selectById(Integer.parseInt(id));
            plan.setStatus(OaStatus.DELETED.getKey());
            updateById(plan);
        }
        return true;
    }


    public List<Map<String, Object>> selectPersonalPlanPage(WcPersonalPlan personalPlan) {
        return planMapper.selectPersonalPlanPage(personalPlan);
    }

    public Integer selectPersonalPlanPageCount(WcPersonalPlan personalPlan) {
        return planMapper.selectPersonalPlanPageCount(personalPlan);
    }

    public List<Map<String, Object>> selectWeekPersonalPlanPage(WcPersonalPlan personalPlan,
                                                                Integer beginWeek, Integer endWeek) {
        return planMapper.selectWeekPersonalPlanPage(personalPlan, beginWeek, endWeek);
    }

    public Integer selectWeekPersonalPlanPageCount(WcPersonalPlan personalPlan, Integer beginWeek, Integer endWeek) {
        return planMapper.selectWeekPersonalPlanPageCount(personalPlan, beginWeek, endWeek);
    }

    public Map<String, Object> selectPersonalPlan(Integer id) {
        return planMapper.selectPersonalPlan(id);
    }
}
